Розробили: проф. Сидоренко В.В., викл. Дóренський О.П., 2013
Лабораторна робота №4
ТЕМА: Таймер операційної системи DOS та Windows.
МЕТА: Набути практичних навичок з програмування таймера операційної системи DOS та системного часу ОС Windows.
Короткі теоретичні відомості
Таймер операційної системи DOS
Комп’ютери ІВМ РС у своєму складі містять годинники системного та реального часу. Функціональна схема з’єднань пристроїв, які утворюють системний та реальний час ПК наведено на рис. 1.
Системний час утворюється операційною системою (ОС) комп’ютера за допомогою інтервального таймера (1), комірок пам’яті за адресою 046Ch-0470h (4) та годинника реального часу (5).
Для утворення системного часу в ІВМ РС використовується канал 0 інтервального таймера, який запрограмований на генерацію прямокутних сигналів з частотою 18,206 Гц (тіків). Вихід канала 0 (OUT0) з’єднано зі входим IR0 контролера переривань (2, рис. 1). Таким чином генерується апаратне переривання IRQ0. Контролер переривань видає адресу програми обробника цього переривання (INT 8h). Виконуючи цей обробник, центральний процесор (3) інкрементує комірки таймера ОС 046Сh-046Fh з частотою 18,206 Гц, а при досягненні кількості тіків, яка рівна добі (1572480 тіків), у комірці пам’яті за адресою 0470h обробник встановлює 1, яка є сигналом для ОС про виклик переривання INT 1Ah, яке здійснює скид значень комірок пам’яті 046Сh-046Fh (запис значення 0) та корекцію календаря. Таким чином, відбувається перехід системного таймера на наступну добу.
Рисунок 1 – Функціональна схема системного та реального часу на платі ІВМ РС:
1 – інтервальний таймер; 2 – контролер переривань; 3 – центральний процесор;
4 – таймер операційної системи; 5 – годинник реального часу (RTC).
При ввімкненні персонального комп’ютера (ПК) системний час встановлюється на основі даних годинника реального часу (RTC) і надалі працює незалежно від нього. Велика частина прикладних та системних програм використовує цей час для розв’язування різних задач. Наприклад, ОС записує на диск дату та час створення файлів, встановлює різного роду паузи під час роботи тощо. Прикладні програми можуть періодично виконувати певні команди. Наприклад, зберігати документ на диску через кожні дві хвилини. Крім того, різні системи керування використовують системний час для своїх потреб, наприклад, для визначення термінів різних операцій, планування руху транспорту тощо.
Реальний час комп’ютера ІВМ РС реалізовано на базі мікросхеми МС46818, яка живиться від акумулятора, що дозволяє контролювати час незалежно від стану ввімкнення/вимкнення ПК. RTC містить 64 комірки пам’яті, які дозволяють утворювати календар, годинник, будильник, який може видавати сигнал у встановлений програмістом час, а також зберігає інформацію про склад і налаштування комп’ютера.
Інтервальний таймер (2) реалізовано на базі мікросхеми і8253/і8254, яка є однокристальним програмуємим пристроєм, призначеним для отримання програмно-керованих часових затримок та генерації прямокутних імпульсів програмно-керованої частоти.
Програма обробки переривання INT 1Ah здійснює керування таймером ОС, а також встановлення та зчитування даних RTC. Для отримання часових затрмок і інтервалів використовуються функції 83h та 86h програмного переривання INT 15h.
Слід зазначити, що при вимкненні ПК дані годинника операційної системи втрачаються, а RTC, який живиться від автономного джерела, – продовжує відлік часу і календаря.
Структурну схему реалізації системного часу на в ІВМ РС наведено на рис. 2.
Рисунок 2 – Структурна схема системного часу на платі ІВМ РС
Таймер операційної системи (інколи його ще називають таймером BIOS) – це 32-розрядна комірка пам’яті, яка знаходиться за початковою адресою 0000:046Сh. Ці комірки пам’яті інкрементуються перериванням Int 8h, яке генерується запитом на контролер переривань IRQ0 від OUT0 інтервального таймера (рис. 1).
При досягненні значення цих комірок, яке рівне 24 год., ОС скидає таймер в 0 і встановлює 1 в комірці пам’яті ...